package com.hoow.shakoow.ai.utils

import android.content.Context
import android.graphics.Color
import android.util.DisplayMetrics
import android.util.TypedValue

object DisplayUtils {

    /**
     * 获取屏幕要素
     *
     * @param context 上下文
     */
    private fun getDisplayMetrics(context: Context): DisplayMetrics {
        return context.resources.displayMetrics
    }

    /**
     * dp to px
     *
     * @param context 上下文
     * @param dipValue dp
     */
    fun dp2px(context: Context, dipValue: Float): Int {
        return TypedValue.applyDimension(
            TypedValue.COMPLEX_UNIT_DIP,
            dipValue,
            getDisplayMetrics(context)
        ).toInt()
    }

    /**
     * sp to dp
     *
     * @param context 上下文
     * @param spValue dp
     */
    fun sp2px(context: Context, spValue: Float): Int {
        val fontScale = context.resources.displayMetrics.scaledDensity
        return (spValue * fontScale + 0.5f).toInt()
    }

    /**
     * screen width
     *
     * @param context 上下文
     */
    fun getScreenWidth(context: Context): Int {
        return context.resources.displayMetrics.widthPixels
    }

    /**
     * screen height
     *
     * @param context 上下文
     */
    fun getScreenHeight(context: Context): Int {
        return context.resources.displayMetrics.heightPixels
    }

    /**
     * 获取屏幕密度
     *
     * @param context 上下文
     */
    fun getDensity(context: Context): Float {
        return context.resources.displayMetrics.density
    }

    /**
     * 获取屏幕密度-dpi
     *
     * @param context 上下文
     */
    fun getDensityDpi(context: Context): Int {
        return context.resources.displayMetrics.densityDpi
    }

    /**
     * 获取随机颜色
     *
     * @param context 上下文
     */
    fun getRandomColor(context: Context): Int {
        val random1 = (0..255).random()
        val random2 = (0..255).random()
        val random3 = (0..255).random()

        return Color.argb(255, random1, random2, random3)
    }
}